Skip to content

Dev Main Sync#7

Merged
vyakymenko merged 319 commits intomainfrom
dev
Mar 23, 2026
Merged

Dev Main Sync#7
vyakymenko merged 319 commits intomainfrom
dev

Conversation

@vyakymenko
Copy link
Collaborator

chore: perf, CI, and structure — v1.8.8

  • CI: fix bun.lock cache keys; run unit tests in ci; ci:notest for fast path
  • API: sequential JSON file writes; extract WS attach + stream helpers
  • Chat: @shared/api-paths, tsconfig for shared include; split file-explorer
  • E2E API: fetch instead of axios; drop direct axios dep
  • Bump version 1.8.7 → 1.8.8

vyakymenko and others added 30 commits March 12, 2026 21:25
- Bump version 1.0.1 → 1.1.0
- Simplify file URL construction (single template)
- Remove redundant key on code element
- Add unit test: 404 shows File not found
- Add unit test: Close button closes file viewer
- Add file-extension-icons module with getFileIconInfo (icon + color by extension)
- Add FileIcon component (Lucide icons: FileCode, FileJson, FileText, etc.)
- Use FileIcon in file-explorer, message-list, file-mention-dropdown, mention-input
- Simplify file-extension-icons: single getBasename, remove duplicate exts
- Simplify mention-utils: drop getFileIconType, trim FILE_EXT_REGEX
- Fix file-icon: use FileJson for lucide-react@0.468, className join with filter
- Add file-extension-icons.spec.ts (14 tests) and file-icon.spec.tsx (8 tests)
- Bump version to 1.2.0
- Integrate mobile menu into header (Phoenix logo + menu pill)
- Move close button into FileExplorer header to fix theme toggle overlap
- Add closeMobileSidebar callback; normalize header indentation
- Add FileExplorer unit tests for onClose (render Close when provided, none when not)
- Bump version to 1.3.0
- Add isChatModelLocked() in api-url; treat 'false'/'0' as unlocked
- ModelSelector: modelLocked prop shows disabled input only, no option buttons
- Extract selected/unselected button class constants in ModelSelector
- Unit tests: ModelSelector (visibility, locked/unlocked, onSelect, onInputChange)
- Unit tests: isChatModelLocked (unset, true, 1, false, 0, other string)
- Doc: .env.example and README for VITE_LOCK_CHAT_MODEL
- Bump version to 1.3.1
…Chunks, spec cleanup

- mention-input: use Array.from(childNodes) for iteration
- add @types/prismjs
- vite.config.mts: return undefined from manualChunks
- layout-constants.spec: remove unused key variable
- bump version to 1.3.4
- Use virtualizer.measureElement and data-index for variable-height rows
- Add gap option and estimateSize for row height; minHeight allows content to grow
- Bump version to 1.3.5
…v1.3.6

- Extract useScrollToBottom hook and isScrollAtBottom helper
- Auto-scroll only when user at bottom or just sent; Latest button when scrolled up
- Add unit tests for scroll helper and hook
- Bump version 1.3.5 -> 1.3.6
- Use virtualizer.scrollToIndex for Latest button and initial load so scroll
  works with @tanstack/react-virtual (scrollIntoView was ineffective)
- MessageList: expose scrollToBottom via ref, scroll to end on first load
- ChatPage: call list scrollToBottom then hook for Latest button state
- Simplify MessageList with useCallback for scrollToBottom
- Add unit tests for MessageList ref and scrollToBottom
- Bump version to 1.3.7
- Only update isAtBottom state when value changes (avoids re-renders on every scroll)
- Add contain:paint and translateZ(0) to .chat-messages-scroll for paint isolation
- Add contain:layout paint to virtual list wrapper in MessageList
- Add unit tests for useScrollToBottom (onScroll at bottom / not at bottom / threshold)
- Bump version 1.3.7 -> 1.3.8
- Chat port 4200 -> 3100 (vite, CORS, README, e2e, .env.example)
- Theme: default to system (prefers-color-scheme), guard matchMedia for tests
- Playgrounds: ignore node_modules and .git in tree and content APIs; simplify pathInIgnoredDir
- Remove debug agent-log fetches from file-mention-dropdown and chat-page
- Add theme.spec.ts (getStoredTheme, setStoredTheme, isDark, toggleTheme, initTheme)
- Add playgrounds tests for path segment ignore and nested node_modules
- Bump version 1.3.8 -> 1.3.9
- Align assistant/streaming message bubbles with input area (bg-card, border-border, shadow-xl shadow-violet-500/5)
- Extract ASSISTANT_BUBBLE_CLASSES constant for reuse and consistency
- Add unit test: assistant message bubble has card styling
- Bump version 1.3.9 -> 1.4.0 (patch was 9, minor bump per convention)
- Extract CORS and frame-ancestors parsing to cors-frame.config.ts
- Simplify main.ts with named constants and getCorsOrigin/getFrameAncestors
- Add unit tests for getCorsOrigin and getFrameAncestors
- Bump patch version to 1.4.1
- Extract constants (LOGO_ALT, EXPLODE_PARTICLE_COUNT, IMG_*_CLASS, PULSE_GLOW_GRADIENT)
- Use Array.from for explode particles; trim wrapper className
- Add unit tests: img src/alt, idle/hover classes, explode count, mouse leave
phoenix-playgrounds-dev and others added 29 commits March 23, 2026 10:24
…lowercase naming

- Replace Phoenix branding with fibe (always lowercase — it's a verb)
- SVG wordmark logo with glowing violet pulse orb on the 'i'
- Modern violet palette: #7c3aed / #a78bfa accents on clean zinc neutrals
- Inter (body) + Instrument Serif (display) typography
- CSS variables updated for both light and dark modes
- All 797 tests pass

BREAKING CHANGE: phoenix-logo.tsx deleted, localStorage keys changed from phoenix-* to fibe-*
…lowercase naming

- Replace Phoenix branding with fibe (always lowercase — it's a verb)
- SVG wordmark logo with glowing violet pulse orb on the 'i'
- Modern violet palette: #7c3aed / #a78bfa accents on clean zinc neutrals
- Inter (body) + Instrument Serif (display) typography
- CSS variables updated for both light and dark modes
- All 797 tests pass

BREAKING CHANGE: phoenix-logo.tsx deleted, localStorage keys changed from phoenix-* to fibe-*
…tics

- styles.css: refined design tokens, added shadow-elevated/glass, transition timing, tracking vars, modal-enter animation
- ui-classes.ts: modal overlay backdrop-blur, frosted modal card, avatar ring separation, softer bubble shadows
- chat-settings-modal: fixed readability — frosted glass card, section dividers, scroll safety
- chat-header: stronger card bg, softer border, muted session timer
- chat-input-area: focus-within glow, rounded send button with scale micro-interaction
- message-list: wider message gaps, subtler model metadata
- login-page: fewer decorative elements (3 orbs/8 sparkles), elevated card/input/button
…tics

- styles.css: refined design tokens, added shadow-elevated/glass, transition timing, tracking vars, modal-enter animation
- ui-classes.ts: modal overlay backdrop-blur, frosted modal card, avatar ring separation, softer bubble shadows
- chat-settings-modal: fixed readability — frosted glass card, section dividers, scroll safety
- chat-header: stronger card bg, softer border, muted session timer
- chat-input-area: focus-within glow, rounded send button with scale micro-interaction
- message-list: wider message gaps, subtler model metadata
- login-page: fewer decorative elements (3 orbs/8 sparkles), elevated card/input/button
- styles.css: refined design tokens, added shadow-elevated/glass, transition timing, tracking vars, modal-enter animation
- ui-classes.ts: modal overlay backdrop-blur, frosted modal card, avatar ring separation, softer bubble shadows
- chat-settings-modal: fixed readability — frosted glass card, section dividers, scroll safety
- chat-header: stronger card bg, softer border, muted session timer
- chat-input-area: focus-within glow, rounded send button with scale micro-interaction
- message-list: wider message gaps, subtler model metadata
- login-page: fewer decorative elements (3 orbs/8 sparkles), elevated card/input/button
- styles.css: refined design tokens, added shadow-elevated/glass, transition timing, tracking vars, modal-enter animation
- ui-classes.ts: modal overlay backdrop-blur, frosted modal card, avatar ring separation, softer bubble shadows
- chat-settings-modal: fixed readability — frosted glass card, section dividers, scroll safety
- chat-header: stronger card bg, softer border, muted session timer
- chat-input-area: focus-within glow, rounded send button with scale micro-interaction
- message-list: wider message gaps, subtler model metadata
- login-page: fewer decorative elements (3 orbs/8 sparkles), elevated card/input/button
@vyakymenko vyakymenko merged commit 458fe48 into main Mar 23, 2026
3 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants